iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Modern Web

從零開始教你做AspNet7.0購物網站系列 第 21

Day-21 實作購物網站註冊功能

  • 分享至 

  • xImage
  •  

加密的原理和方法講完了,就來具體實作登入功能拉
不過那在那之前,要先寫註冊,不然沒有帳號可以登入

首先先建一張會員資料表User.cs

using System;
namespace Models
{
    public partial class User
    {
        public int Id { get; set; }

        public string? name { get; set; }

        public string password { get; set; }

    }
}

然後在資料庫上下文中新增一段
Context.cs

public virtual DbSet<User> User { get; set; }



然後在控制器設一個進入註冊頁面的方法
LoginController.cs
public IActionResult Register()
{
    return View();
}

然後寫一個註冊表單
Register.cshtml

<form action="/Login/RegisterPost" method="post">
    <div class="row mb-3">
        <label for="colFormLabel" class="col-sm-2 col-form-label">建立帳號:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name="name" placeholder="請輸入帳號">
        </div>
    </div>

    <div class="row mb-3">
        <label for="colFormLabel" class="col-sm-2 col-form-label">建立密碼:</label>
        <div class="col-sm-10">
            <input type="password" class="form-control" id="password" name="password" placeholder="請輸入密碼">
        </div>
    </div>
    <div class="d-grid gap-2 col-6 mx-auto">
        <button class="btn btn-outline-primary" type="submit">註冊</button>
        <a class="btn btn-outline-primary" type="button" href="@Url.Action("UserLogin", "Login")">登入</a>
    </div>
</form>

在控制器寫一個輸入表單後要執行的邏輯,就是把表單的內容新增到資料庫中
LoginController.cs

[HttpPost]
public IActionResult RegisterPost()
{

    string inputname = Request.Form["name"];
    string password = Request.Form["password"];

    if (inputname == null || password == null || inputname == "" || password == "")
    {
        TempData["ErrorMessage"] = "帳號和密碼不能為空。";
        return RedirectToAction("Register", "Login");
    }
    password = this.ComputeMD5Hash(password);
    var user = new User
    {
        name = inputname,
        password = password,
    };
    _db.User.Add(user);
    _db.SaveChanges();



    return RedirectToAction("succ", "Login");

}

這邊使用的我們剛剛做的MD5加密方法ComputeMD5Hash,把加密後的密碼放到資料庫,之後要登入的時候把登入時輸入的密碼再次加密,然後和資料庫中的密碼比對
這樣就是最簡單的登入加密功能


上一篇
Day-20 MD5加密介紹
下一篇
Day-22 網頁的儲存機制Cookie&Session
系列文
從零開始教你做AspNet7.0購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言